Spread spectrum techniques have proven useful in a variety of communications applications, including cellular telephones, wireless local area networks, and military communications. One advantage of spread spectrum techniques is the ability to build a transmitter which is difficult for an unauthorized user to detect.
Wireless spread spectrum systems use a relatively large amount of spectrum bandwidth to communicate their signals. The large bandwidth is consumed by spread spectrum encoding the transmission using a spreading code. The two most common types of spread spectrum encoding are frequency hopping where a pseudonoise spreading code is used to pseudorandomly change the transmission frequency on a periodic basis, and direct sequence where the pseudonoise spreading code is used to modulate the transmit signal at a high rate relative to the underlying message data. The spread code is a pseudorandom sequence of symbols that can be generated by a transmitter, and also generated by a receiver which knows the characteristics of the code. Each symbol of the pseudorandom sequence is generally referred to as a chip. The time duration of a chip can be referred to as a chip time, and hence the chip rate (or spreading code frequency) is the reciprocal of the chip time. The chip rate is usually at least an order of magnitude higher than the data rate of the underlying information to be transmitted.
Correlation can be used to detect a spread spectrum transmission and to extract the data from a spread spectrum transmission. Correlation typically performs a chip by chip comparison between a received signal and a local code reference, summing these comparison results over many chip intervals, the overall length referred to as the “correlation interval.” For example, to extract data, a receiver typically performs a correlation of the spread spectrum signal with the spreading code over a correlation interval corresponding to one symbol of underlying information. If the so-called processing gain is high (many spreading code chips for each information symbol), this correlation interval may span an interval of many chips. For example, systems are known which use processing gain in excess of 1000, in which case each symbol spans 1000 chips. For detecting a spread spectrum transmission, even longer correlation intervals are often used which span many symbols and, thus, many thousands of chips.
Long correlation intervals can cause problems when the spreading code rate received doesn't match that expected by the correlator. This difference, referred to as spreading code frequency offset, causes phase drift of the received signal relative to the local code reference. This drift can thus accumulate during the correlation interval. Hence, where the phase of the received signal and the local code reference may start out aligned at the beginning of the correlation interval, they may be misaligned (perhaps by several chip times) by the end of the correlation interval. This misalignment results in a loss in the correlator output, reducing the signal to noise ratio. Effects of this loss can include reduced probability of detection, increased symbol error rates during data extraction, and complete loss of synchronization.
One approach to solving the problems caused by code frequency offset is to limit the length of the correlation interval. Limiting the length of the correlation can reduce the effects of code frequency offset because there is less time for the code phase to drift. The reduced length, however, also results in a reduction in signal to noise ratio. Hence, to accommodate large code frequency offset using a shorter correlation interval may result in inadequate signal to noise ratio.
An alternative approach, applicable to signal detection, is to include complex clocking circuitry to provide multiple local code references which advance at slightly different frequencies. Hence, correlators using different rate local references can accommodate different code frequency offset. Unfortunately, the complexity of the multiple clocking can increase costs. Furthermore, it is difficult to accommodate these multiple slightly different clock rates in a synchronous logic design.